import { http } from '@/utils/request'

/**
 * 获取热门标签列表
 * @param {Object} params - 分页参数 (page, size)
 * @returns {Promise} 返回热门标签列表
 */
export const getHotTags = (params) => {
  return http.get('/api/tags', { params })
}

/**
 * 搜索标签
 * @param {string} keyword - 搜索关键词
 * @param {Object} params - 分页参数 (page, size)
 * @returns {Promise} 返回匹配的标签列表
 */
export const searchTags = (keyword, params = {}) => {
  return http.get('/api/tags/search', { 
    params: { 
      keyword,
      ...params 
    } 
  })
}

/**
 * 创建新标签
 * @param {string} name - 标签名称
 * @returns {Promise} 返回创建的标签信息
 */
export const createTag = (name) => {
  return http.post('/api/tags', null, { params: { name } })
}

/**
 * 获取游记的标签
 * @param {string} travelId - 游记ID
 * @returns {Promise} 返回游记的标签列表
 */
export const getTravelTags = (travelId) => {
  return http.get(`/api/tags/travel/${travelId}`)
}

/**
 * 为游记添加标签
 * @param {string} travelId - 游记ID
 * @param {Array} tags - 标签名称数组
 * @returns {Promise} 返回添加后的标签列表
 */
export const addTravelTags = (travelId, tags) => {
  return http.post(`/api/tags/travel/${travelId}`, tags)
}

/**
 * 删除游记标签
 * @param {string} travelId - 游记ID
 * @param {string} tagId - 标签ID
 * @returns {Promise} 返回删除结果
 */
export const deleteTravelTag = (travelId, tagId) => {
  return http.delete(`/api/tags/travel/${travelId}/${tagId}`)
}

/**
 * 从文本内容中解析标签
 * @param {string} content - 待解析的文本内容
 * @returns {Promise} 返回解析出的标签列表
 */
export const parseTagsFromContent = (content) => {
  return http.post('/api/tags/parse', null, { params: { content } })
} 